df72408796fc9085a53d1053c62e44dd2947ca49,core/persistence/source/jetbrains/mps/smodel/DefaultSModelDescriptor.java,DefaultSModelDescriptor,getSModelInternal,#,90

Before Change


      ModelLoadingState oldState = myModel.getState();
      DefaultSModel res = myModel.getModel(ModelLoadingState.ROOTS_LOADED);
      if (res == null) return null; // this is when we are in recursion
      res.setModelDescriptor(this);
      if (oldState != myModel.getState()) {
        fireModelStateChanged(oldState, myModel.getState());
      }

After Change


  @Override
  public final DefaultSModel getSModelInternal() {
    ModelLoadingState oldState = myModel.getState();
    if (oldState.ordinal() >= ModelLoadingState.ROOTS_LOADED.ordinal()) {
      return myModel.getModel(ModelLoadingState.ROOTS_LOADED);
    }
    synchronized (myModel) {
      oldState = myModel.getState();
      DefaultSModel res = myModel.getModel(ModelLoadingState.ROOTS_LOADED);
      if (res == null) return null; // this is when we are in recursion
      if (oldState != myModel.getState()) {
        res.setModelDescriptor(this);
        fireModelStateChanged(oldState, myModel.getState());
      }
      return res;